Mobile devices, such as smart phones and tablets, are becoming increasingly popular. These come in a variety of models with varying operating systems, mobile carriers, and hardware and software resources. As mobile devices become more popular, there is a growing demand for applications to use on them. An application may require that a mobile device has certain resources necessary to properly run the application. For example, a specific operating system, a minimum version of that operating system, a touch-sensitive screen, an accelerometer, and/or other resources may be the minimum necessary to properly run a given application.
To help users to find and download applications for their mobile devices, companies have provided mobile application stores. These mobile application stores are often accessed from a mobile device connected to a network, and present a user with applications available for purchase and/or download. It may be advantageous to avoid presenting users with the ability to purchase and/or download an application which is incompatible with the user's mobile device. If the number of different models of mobile devices is relatively small, it may be feasible to maintain a comprehensive list of approved or unapproved mobile devices for a particular application. However, as the number and variety of different models of mobile devices grow, and the rate at which new models released increases, such list-based compatibility approaches become more burdensome and less accurate. This may be further complicated by users changing the resources on their mobile devices, such as upgrading the operating system version, or changing the mobile carrier through which their mobile devices accesses a network.
A new version of a popular mobile operating system may cause an application which ran stably under the prior version to crash on the new version. Detecting a correlation between mobile devices' use of the new operating system version, and the increased rate at which the application crashes those mobile devices may be able to avoid user frustration and speed up a response from the application's developer.